package com.octopus.tree;

import java.util.List;

public interface Tree {
	TreeBranch getRoot();
	List<TreeBranch> getTreeBranchList(String branchPath);
	List<TreeLeaf> getTreeLeafList(String branchPath, String leafName);
	TreeBranch getDefaultTreeBranch(String branchPath);
	List<TreeBranch> getTreeBranchList(String branchPath, String Kind);
	TreeLeaf getDefaultTreeLeaf(String branchPath, String leafName);
	List<TreeLeaf> getTreeLeaf(String branchPath, String leafName, String Kind);
	
	boolean preparePermanent();
	void clearPermanent();
	boolean toContentObject();
	
	TreeBranch createSimpleSubTreeBranch(String pathExp);
	
	List<TreeBranch> findTreeBranch(String xpathLike);
	List<TreeLeaf> findTreeLeaf(String xpathLike);
}
